Gesture-initiated remote control programming

ABSTRACT

A method and system for configuring a universal remote control (URC) to control a remote-controlled device includes establishing a communication link between the URC and the remote-controlled device in response to detecting a gesture motion of the URC. Device information may be received from the remote-controlled device and used by the URC to program the URC to control the remote-controlled device. The URC may be configured to control a plurality of remote-controlled devices. The communication link may be a near field wireless communication link.

The present patent application is a continuation of a previously filed patent application, U.S. patent application Ser. No. 12/606,053, filed Oct. 26, 2009, the entirety of which is hereby incorporated by reference. Pursuant to 37 CFR §1.78(a)(3), an application data sheet containing a reference to the previously filed application, unless submitted previously, is submitted contemporaneously herewith.

BACKGROUND

1. Field of the Disclosure

The present disclosure relates to remote control and, more particularly, to gesture-initiated programming of a remote control.

2. Description of the Related Art

Remote control devices provide convenient operation of equipment from a distance. Many consumer electronic devices are equipped with remote control (RC) features. A universal remote control (URC), which may be configured to control different pieces of equipment, may often be difficult to reconfigure and reprogram.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of selected elements of an embodiment of a remote control system;

FIG. 2 illustrates an embodiment of a method for operating a URC;

FIG. 3 illustrates an embodiment of a method for operating a URC;

FIG. 4 is a block diagram of selected elements of an embodiment of a remote-controlled device; and

FIG. 5 is a block diagram of selected elements of an embodiment of a remote control system.

DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

In one aspect, a disclosed method for configuring a URC includes detecting a gesture motion of the URC, and in response thereto, establishing a wireless communication link with a remote-controlled device. The method may further include receiving, via the wireless communication link, device information from the remote-controlled device. Based on the device information, the method may further include programming the URC to control the remote-controlled device, and storing the device information in the URC.

In certain embodiments, responsive to displaying at least a portion of the device information on a display device of the URC, the method may further include receiving user input to select the remote-controlled device for said programming. The gesture motion may include the URC traversing a pre-defined spatial path. The gesture motion may include an oscillating motion. The method operation of establishing the wireless link may include establishing a near field communication link in substantial compliance with at least one of the following standards: IEEE 802.15.4, IEEE 802.11, and IEEE 802.15.1. Device information for a plurality of remote-controlled devices may be displayed.

In particular embodiments, the method operation of establishing a connection with a remote-controlled device may further include signaling the remote-controlled device to initiate programming of the URC. The device information may include programming codes for enabling the URC to control the remote-controlled device and/or identifying information for the remote-controlled device.

In various embodiments, responsive to user input, the method may still further include sending a remote control message to the remote-controlled device, the remote control message including an instruction executable by the remote-controlled device.

In another aspect, a disclosed URC includes a processor, a motion sensor, a near field transceiver, and memory media accessible to the processor. The memory media may include instructions executable by the processor to, responsive to the motion sensor detecting a gesture motion, receive device identifying information from at least one remote-controlled device available for programming the URC. The memory media may further include processor instructions executable to, responsive to user input selecting an available remote-controlled device, signal the remote-controlled device to send device programming information to the URC, and receive, via the near field transceiver, the device programming information from the remote-controlled device. The memory media may yet further include processor instructions executable to, responsive to receiving the device programming information, program the URC to control the remote-controlled device.

In particular embodiments, the URC may further include a display device controlled by the processor, along with processor instructions executable to display an indication of the at least one available remote-controlled devices using the display device.

In certain embodiments, the URC may further include a user control interface configured to receive user input, and processor instructions executable to select, based on the user control interface, an available remote-controlled device for programming the URC to control. The user control interface may be a touch interface responsive to tactile user input. The user control interface may be an audio interface responsive to user speech input. The processor instructions to identify at least one remote-controlled device may further include processor instructions executable to broadcast, via the near field transceiver, a remote-controlled device query for available remote-controlled devices. Based on receiving a response to the query, the processor instructions may further be executable to identify at least one available remote-controlled device. The near field transceiver may be an infrared (IR) or a near field radio-frequency (RF) wireless interface.

In a further aspect, a disclosed computer-readable memory media includes executable instructions for configuring a URC. The instructions may be executable to respond to sensing a gesture motion of the URC by wirelessly detecting remote-controlled devices in a vicinity of the URC available for programming the URC, select one of the detected available remote-controlled devices, and signal the selected remote-controlled device to initiate programming of the URC and to send programming codes to the URC. The instructions may further be executable to receive the programming codes from the remote-controlled device, and program the URC to control the remote-controlled device, using the programming codes. The instructions to detect remote-controlled devices may further include instructions executable to send a wireless identification message for remote-controlled devices. Based on a received response to the wireless identification message, the instructions may further be executable to identify the available remote-controlled devices in the vicinity. A determination may be made that no available remote-controlled devices may be detected when no response to the wireless identification message is received within a pre-determined time. In certain embodiments, the memory media may include instructions executable to display an indication of the available remote-controlled devices in the vicinity.

In the following description, details are set forth by way of example to facilitate discussion of the disclosed subject matter. It should be apparent to a person of ordinary skill in the field, however, that the disclosed embodiments are exemplary and not exhaustive of all possible embodiments.

Throughout this disclosure, a hyphenated form of a reference numeral refers to a specific instance of an element and the un-hyphenated form of the reference numeral refers to the element generically or collectively. Thus, for example, widget 12-1 refers to an instance of a widget class, which may be referred to collectively as widgets 12 and any one of which may be referred to generically as a widget 12.

Referring now to FIG. 1, a block diagram of selected elements of an embodiment of remote-controlled system 100 are depicted. System 100 illustrates devices, interfaces and information that may be processed to enable URC 108 to control remote-controlled device 112. In system 100, remote-controlled device 112 represents any of a number of different types of devices that are remote-controlled, such as media players, televisions, or client-premises equipment (CPE) for multimedia content distribution networks (MCDNs), among others. As used herein, a “gesture” or “gesture motion” or “gesture command” refers to a particular motion, or sequences of motions, imparted to an RC by a user for the purpose of providing user input to the RC. The gesture motion may be a translation or a rotation, or a combination thereof, in 2- or 3-dimensional space. Specific gesture motions may be defined and assigned to predetermined commands or functions. As will be described in detail herein, URC 108 may be configured to detect a gesture motion for initiating programming of URC 108 to control remote-controlled device 112. URC 108 may then receive device information, such as identifying information and programming information, from remote-controlled device 112. After receiving the device information, URC 108 may be programmed to control remote-controlled device 112 via wireless communication link 102. Upon receiving command data from URC 108, remote-controlled device 112 may execute a remote control function corresponding to the remote control command. In this manner, a user of remote-controlled system 100 may be provided a simplified, yet flexible interface for configuring URC 108 to control and operate remote-controlled device 112.

In FIG. 1, URC 108 is depicted communicating with remote-controlled device 112 via wireless communication link 102. In other embodiments, wireless communication link 102 may be replaced by a mechanically connected interface, or some combination of different interfaces (not shown in FIG. 1).

As shown in FIG. 1, URC 108, which may be a hand-held and manually operated device, includes numerous elements, and may include additional elements (not shown in FIG. 1) in various embodiments. URC 108 is shown including processor 106, near field transceiver 120, memory 125, motion sensor(s) 104, and display 114. Memory 125 is depicted in FIG. 1 including gesture detection 118, RCD control codes 122-1, RCD control codes 122-2, and user control interface 116. Accordingly, URC 108 may comprise elements configured to function as an embodiment of an electronic device capable of executing program instructions. URC 108 may further include at least one shared bus (not shown in FIG. 1) for interconnectivity among internal elements, such as those depicted in FIG. 1.

Processor 106 may represent at least one processing unit and may further include internal memory, such as a cache for storing processor executable instructions. In certain embodiments, processor 106 serves as a main controller for URC 108. In various embodiments, processor 106 is operable to perform remote control operations, including gesture detection and processing operations, as described herein.

In FIG. 1, near field transceiver 120 may represent a communications transceiver providing an interface for any of a number of communication links. In certain embodiments, near field transceiver 120 supports wireless communication links, such as IR, RF, and audio, among others. Near field transceiver 120 may further support mechanically connected communication links to URCs, such as galvanically wired connections, connections to external antennas, etc., and may accordingly include a physical adapter or receptacle for receiving such connections. In one embodiment, near field transceiver 120 transforms an instruction for operating remote-controlled device 112 into a signal sent via wireless communication link 102. It is noted that near field transceiver 120 may be a bidirectional interface, such that responses, such as commands, information, or acknowledgements, may be received from remote-controlled device 112 via wireless communication link 102. In one embodiment, a message may be sent to remote-controlled device 112 and an acknowledgement of the message may be received from remote-controlled device 112, such that the message is sent and the acknowledgment is received via near field transceiver 120. The message may include command data, as will be described below.

Also in FIG. 1, memory 125 encompasses persistent and volatile media, fixed and removable media, magnetic and semiconductor media, or a combination thereof. Memory 125 is operable to store instructions, data, or both. Memory 125 as shown includes data, which may be in the form of sets or sequences of executable instructions, namely, gesture detection 118. Gesture detection 118 may include processor executable instructions to detect and interpret gesture motions as user input. For example, gesture detection, in conjunction with motion sensor(s) 104, as will be described below, may be configured to detect URC 108 traversing a pre-defined spatial path, and interpret this as user input. As will be described herein, the user input may be interpreted by gesture detection 118 as an indication to begin programming URC 108 to control a new remote-controlled device.

Memory 125 is further shown including RCD control codes 122-1 and 122-2, representing respective programming information for additional remote-controlled devices (not shown in FIG. 1; see also FIG. 4). URC 108 as depicted in FIG. 1 is configured to control two remote-controlled devices, while being configured to initiate programming to control remote-controlled device 112, which may be a new remote-controlled device. Accordingly, URC 108 may be configured to control a plurality of remote-controlled devices.

Memory 125 is still further depicted in FIG. 1 including user control interface 116, representing functionality to control a variety of input control elements integrated into URC 108. User control interface 116 may support the use of buttons, sliders, switches or other types of electromechanical input devices (not shown in FIG. 1), or virtual implementations thereof. For example, user control interface 116 may support power control elements for powering URC 108 on or off. User control interface 116 may additionally support control elements that generate remote control commands executable by remote-controlled device 112, such as, but not limited to, info, play, pause, guide, purchase, browse, etc. In certain embodiments, user control interface 116 may include control elements associated with a remote control context (not shown in FIG. 1) executing on URC 108 and/or remote-controlled device 112. The remote control context may be in the form of a displayed menu structure that is controlled by user control interface 116. In particular, user control interface 116 may support functionality to select an activated item in the remote control context.

URC 108, as depicted in FIG. 1, includes motion sensor(s) 104, which may be mechanically integrated into URC 108. Motion sensor(s) 104 may represent devices configured to detect linear translations, rotational translations, linear acceleration, rotational acceleration, or a combination thereof. For example, motion sensor(s) 104 may be configured to determine a spatial acceleration involving multiple axes of motion simultaneously. Motion sensor(s) 104 may include microelectromechanical systems (MEMS) or MEMS components, such as accelerometers, gyroscopes, or other types of motion sensors. It is noted that motion sensor(s) 104 may represent sensors configured to detect translation or rotation of URC 108 in multiple dimensions simultaneously.

In FIG. 1, URC 108 is shown including display 114 which may represent a display device implemented as a liquid crystal display screen, a computer monitor, a television, a touch screen device, or the like. The display element may comply with a display standard for the corresponding type of display. Standards for computer monitors include analog standards such as video graphics array (VGA), extended graphics array (XGA), etc., or digital standards such as digital visual interface (DVI) or high-definition multimedia interface (HDMI), among others. A television display may comply with standards such as National Television System Committee (NTSC), Phase Alternating Line (PAL), or another suitable standard. It is noted that display 114 may be configured to display a list of remote-controlled devices detected in a vicinity of URC 108. Display 114 may further enable user input for selecting one of the displayed remote-controlled device for programming URC 108 to control, as will be described in detail herein.

In operation, URC 108, after power on, may be enabled to detect a gesture motion, such as a pre-determined spatial path. The detected gesture motion may be interpreted as a user command or signal to initiate a programming mode of URC 108. In other embodiments, a programming mode may be initiated with additional or alternate user input. Then, URC 108 may establish a wireless communication link with remote-controlled device 112. In certain embodiments, URC 108 may broadcast, using near field transceiver 120, a query for any remote-controlled devices in a vicinity of URC 108. The query may be a beacon or a wireless identification message to which a number of remote-controlled devices may respond. The extent of the vicinity may be determined by the field strength, frequency, or other attribute of near field transceiver 120. Remote-controlled devices responding to the query may be considered “available” for programming URC 108 to control. The available remote-controlled devices may be displayed by URC 108 and user input may be received for selecting at least one of the available remote-controlled device for programming, such as remote-controlled device 112. Remote-controlled device 112 may then send programming codes to URC 108, which may store the programming codes as RCD control codes, similar to RCD control codes 122-1 and 122-2, in memory 125. URC 108 may then be configured to control remote-controlled device 112, and may accordingly send, via wireless communication link 102, commands to remote-controlled device 112, which remote-controlled device 112 may receive and execute. The commands may correspond to the RCD control codes (not shown in FIG. 1) for remote-controlled device 112 stored in memory 125.

Turning now to FIG. 2, an embodiment of method 200 for configuring a URC is illustrated. In one embodiment, method 200 is performed at least in part by gesture detection 118 executing on URC 108 (see FIG. 1). Memory 125 (see FIG. 1) may further include additional executable code for performing method 200. It is noted that certain operations described in method 200 may be optional or may be rearranged in different embodiments.

Method 200 may begin by detecting a gesture motion of the URC (operation 202). The gesture motion may be detected using motion sensor(s) 104 (see FIG. 1). The gesture motion may serve as a signal to initiate a programming mode or function on the URC. A wireless identification message may be sent for remote-controlled device(s) in a vicinity of the URC (operation 204). It is noted that certain remote-controlled device(s) may be configured to receive the identification message, and respond accordingly.

Method 200 may proceed by determining whether one or more response(s) were received to the wireless identification message (operation 206). If the result of the determination in operation 206 is NO, then no remote-controlled devices (or new remote-controlled devices) were identified, and method 200 may end (operation 208). In certain embodiments, no available remote-controlled devices are detected when no response to the wireless identification message is received within a pre-determined time. If the result of the determination in operation 206 is YES, then at least one response from a remote-controlled device was detected. The available remote-controlled device(s) may be identified from the response(s) (operation 210). The response(s) may include device identification information for the responding remote-controlled device(s).

An indication of the available remote-controlled device(s) may be displayed (operation 212). For example, a list of available remote-controlled device(s) may be displayed on display 114 (see FIG. 1). User input selecting a remote-controlled device from the displayed indication may be received (operation 214). The selected remote-controlled device may be signaled to send device information to the URC (operation 216). Alternatively, the device information may be provided to the URC during the initial response by the remote-controlled device. The device information, including programming codes, may be received from the remote-controlled device (operation 218). Using the device information, the URC may be programmed to control the remote-controlled device (operation 220). The remote-controlled device may represent a new remote-controlled device, which the URC is now configured to control. The received device information may be stored in the URC (operation 222). The device information may be stored as RCD control codes 122 in memory 125 of URC 108 (see FIG. 1).

Turning now to FIG. 3, an embodiment of method 300 for operating a URC is illustrated. In one embodiment, method 300 is performed by URC 108 (see FIG. 1) in conjunction with user input. It is noted that certain operations described in method 300 may be optional or may be rearranged in different embodiments.

Method 300 may begin by performing gesture-initiated programming of a URC to control a remote-controlled device (operation 304) In one embodiment, operation 304 corresponds to method 200 (see FIG. 2). User input specifying a remote control function for the remote-controlled device may be received (operation 306). The user input may be received in response to displaying user control interface 116 on display 114. A remote control message, including an instruction executable by the remote-controlled device, may be sent to the remote-controlled device (operation 308). The instruction, or command, may be sent by near field transceiver 120 via wireless communication link 102 to remote-controlled device 112. Remote-controlled device 112 may then respond by executing the instruction.

Referring now to FIG. 4, a block diagram illustrating selected elements of an embodiment of remote-controlled device 112 is presented. As noted previously, remote-controlled device 112 may represent any of a number of different types of devices that are remote-controlled, such as media players, televisions, or CPE for MCDNs, among others. In FIG. 4, remote-controlled device 112 is shown as a functional component along with display 426, independent of any physical implementation, and may be any combination of elements of remote-controlled device 112 and display 426.

In the embodiment depicted in FIG. 4, remote-controlled device 112 includes processor 401 coupled via shared bus 402 to storage media collectively identified as storage 410. Remote-controlled device 112, as depicted in FIG. 4, further includes network adapter 420 that may interface remote-controlled device 112 to a local area network (LAN) through which remote-controlled device 112 may receive and send multimedia content (not shown in FIG. 4). Network adapter 420 may further enable connectivity to a wide area network (WAN) for receiving and sending multimedia content via an access network (not shown in FIG. 4).

In embodiments suitable for use in Internet protocol (IP) based content delivery networks, remote-controlled device 112, as depicted in FIG. 4, may include transport unit 430 that assembles the payloads from a sequence or set of network packets into a stream of multimedia content. In coaxial based access networks, content may be delivered as a stream that is not packet based and it may not be necessary in these embodiments to include transport unit 430. In a coaxial implementation, however, tuning resources (not explicitly depicted in FIG. 4) may be required to “filter” desired content from other content that is delivered over the coaxial medium simultaneously and these tuners may be provided in remote-controlled device 112. The stream of multimedia content received by transport unit 430 may include audio information and video information and transport unit 430 may parse or segregate the two to generate video stream 432 and audio stream 434 as shown.

Video and audio streams 432 and 434, as output from transport unit 430, may include audio or video information that is compressed, encrypted, or both. A decoder unit 440 is shown as receiving video and audio streams 432 and 434 and generating native format video and audio streams 442 and 444. Decoder 440 may employ any of various widely distributed video decoding algorithms including any of the Motion Pictures Expert Group (MPEG) standards, or Windows Media Video (WMV) standards including WMV 9, which has been standardized as Video Codec-1 (VC-1) by the Society of Motion Picture and Television Engineers. Similarly decoder 440 may employ any of various audio decoding algorithms including Dolby® Digital, Digital Theatre System (DTS) Coherent Acoustics, and Windows Media Audio (WMA).

The native format video and audio streams 442 and 444 as shown in FIG. 4 may be processed by encoders/digital-to-analog converters (encoders/DACs) 450 and 470 respectively to produce analog video and audio signals 452 and 454 in a format compliant with display 426, which itself may not be a part of remote-controlled device 112. Display 426 may comply with NTSC, PAL or any other suitable television standard.

Storage 410 encompasses persistent and volatile media, fixed and removable media, and magnetic and semiconductor media. Storage 410 is operable to store instructions, data, or both. Storage 410 as shown may include sets or sequences of instructions, namely, an operating system 412, a remote control application program identified as remote control module 414, and electronic programming guide (EPG) 416. Operating system 412 may be a UNIX or UNIX-like operating system, a Windows® family operating system, or another suitable operating system. In some embodiments, storage 410 is configured to store and execute instructions provided as services by an application server via the WAN (not shown in FIG. 4).

EPG 416 represents a guide to multimedia content available for viewing using remote-controlled device 112, and may be shown to the user as an element of the user interface. The user interface may include a plurality of menu items arranged according to one or more menu layouts, which enable a user to operate remote-controlled device 112. The user may operate the user interface, including EPG 416, using URC 108 (see FIG. 1) in conjunction with remote control module 414. In some embodiments, EPG 416 may include an implementation of a remote control context, as described above.

Local transceiver 408 represents an interface of remote-controlled device 112 for communicating with external devices, such as URC 108 (see FIG. 1), or another remote control device. Local transceiver 408 may provide a mechanical interface for coupling to an external device, such as a plug, socket, or other proximal adapter. In some cases, local transceiver 408 is a wireless transceiver, configured to send and receive IR or RF or other signals. Local transceiver 408 may be accessed by remote control module 414 for providing remote control functionality.

Turning now to FIG. 5, vicinity 500 of URC 108 is depicted. Vicinity 500 may represent an area serviceable by near field transceiver 120 (see FIG. 1). URC 108 is shown in FIG. 5 configured to control three remote-controlled devices 112-1, 112-2, and 112-3, via wireless communication link 102. In certain embodiments, remote-controlled device 112-3 in FIG. 5 may correspond to newly configured remote-controlled device 112, as shown in FIG. 1. As described herein, URC 108 may be configured to be programmed to control a remote-controlled device introduced into vicinity 500. Wireless communication link 102 may be in substantial compliance with at least one of the following standards: IEEE 802.15.4 (ZigBee), IEEE 802.11 (WiFi), and IEEE 802.15.1 (Bluetooth).

To the maximum extent allowed by law, the scope of the present disclosure is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited to the specific embodiments described in the foregoing detailed description. 

What is claimed is:
 1. A universal remote control method, comprising: wirelessly broadcasting, by a universal remote control, a device identification query, including a wireless identification message and an acknowledgement of the message received, to identify at least one available remote-controlled device, in proximity to the universal remote control, available to program the universal remote control and to control the remote-controlled device using programming codes associated with the remote-controlled device; responsive to receiving responses to the wireless identification messages from available remote-controlled devices: displaying, by the universal remote control, the available remote-controlled devices; receiving user input selecting a particular remote-controlled device from the available remote-controlled devices; responsive to sensing a particular motion, a user command, or a signal to initiate a programming mode of the universal remote control, establishing a wireless communication link with the particular remote-controlled device; receiving, via the wireless communication link, device information from the particular remote-controlled device; and based on the device information, programming the universal remote control to control the remote-controlled device; and responsive to receiving no responses to the wireless identification messages from proximal remote-controlled devices during a response interval of a particular duration, determining that there are no available remote-controlled devices.
 2. The method of claim 1, wherein the particular motion includes a pre-defined spatial path.
 3. The method of claim 1, wherein the particular motion comprises an oscillating motion.
 4. The method of claim 1, wherein wirelessly broadcasting the query comprises wirelessly broadcasting, the query with a near field transceiver.
 5. The method of claim 1, further comprising: displaying, by the universal remote control, at least a portion of the device information.
 6. The method of claim 5, further comprising: displaying device information for a plurality of remote-controlled devices.
 7. The method of claim 1, further comprising: storing the device information in the universal remote control.
 8. The method of claim 1, wherein the device information includes programming codes enabling the universal remote control to control the remote-controlled device.
 9. The method of claim 1, wherein the device information includes identifying information for the remote-controlled device.
 10. The method of claim 1, further comprising: responsive to user input, sending a remote control command to the remote-controlled device, the remote control command corresponding to a command executable by the remote-controlled device.
 11. A universal remote control, comprising: a processor; a motion sensor; a near field transceiver; and memory media, including processor-executable instructions that, when executed by the processor, cause the processor to perform operations comprising: wirelessly broadcasting a device identification query, including a wireless identification message and an acknowledgement of the message received, to identify at least one available remote-controlled device, in proximity to the universal remote control, available to program the universal remote control and to control the remote-controlled device using programming codes associated with the remote-controlled device; determining available remote-controlled devices based on responses to the wireless identification messages received by the universal remote control; receiving user input selecting a particular remote-controlled device for programming; receiving device identifying information from the remote-controlled device selected; signaling the remote-controlled device to send device programming information; receiving, via the near field transceiver, the device programming information from the remote-controlled device; responsive to receiving the device programming information, programming the universal remote control to control the remote-controlled device; and responsive to receiving no responses to the wireless identification messages from proximal remote-controlled devices during a response interval of a particular duration, determining that there are no available remote-controlled devices.
 12. The universal remote control of claim 11, further comprising: a display device controlled by the processor; and wherein the operations include: displaying an indication of the available remote-controlled devices on a display device of the universal remote control.
 13. The universal remote control of claim 11, further comprising: a user control interface configured to receive user input; and wherein the operations include: selecting, for programming, an available remote-controlled device based on user input to the user control interface.
 14. The universal remote control of claim 13, wherein the user control interface is a touch interface responsive to tactile user input.
 15. The universal remote control of claim 13, wherein the user control interface is an audio interface responsive to user speech input.
 16. The universal remote control of claim 11, wherein wirelessly broadcasting the query comprises: wirelessly broadcasting the query via the near field transceiver.
 17. The universal remote control of claim 11, wherein the near field transceiver is selected from a group consisting of: an infrared radio-frequency (RF) wireless interface, and a near field RF wireless interface.
 18. A non-transitory computer-readable memory device, including processor executable instructions that, when executed by a processor, cause the processor to perform operations comprising: wirelessly broadcasting a device identification query, including a wireless identification message and an acknowledgement of the message received, to identify at least one available remote-controlled device, in proximity to the universal remote control, available to program the universal remote control and to control the remote-controlled device using programming codes associated with the remote-controlled device; identifying remote-controlled devices responding to the wireless identification messages as available remote-controlled devices; displaying the available remote-controlled devices; responsive to receiving input indicating a particular remote-controlled device, signaling the particular remote-controlled device to initiate programming of the universal remote control and to send programming codes to the universal remote control; receiving the programming codes from the remote-controlled device; programming the universal remote control to control the remote-controlled device in accordance with the programming codes; and responsive to receiving no responses to the wireless identification messages from proximal remote-controlled devices during a response interval of a particular duration, determining that there are no available remote-controlled devices.
 19. The memory device of claim 18, wherein no available remote-controlled devices are detected when no response to the query is received within a pre-determined time, and wherein the operations include: displaying an indication of no available remote-controlled devices. 